package br.edu.fucapi.posgraduacao.poo2.sgr.controller.impl;

import java.io.Serializable;
import java.util.List;
import javax.inject.Inject;
import br.edu.fucapi.posgraduacao.poo2.sgr.controller.UsuarioController;
import br.edu.fucapi.posgraduacao.poo2.sgr.dao.DAO;
import br.edu.fucapi.posgraduacao.poo2.sgr.model.Usuario;

/**
 * @class Usuario.java
 * @author Fabio Oliveira
 * @date 11/01/2013
 * @brief Classe utilizada para Controle das Operações dos Usuários.
 */

public class UsuarioControllerImpl implements UsuarioController {

	@Inject
	private transient DAO<Usuario, Serializable> dao;
	
	public void salvar(Usuario usuario) throws RuntimeException {
		dao.save(usuario);
	}

	public void remover(Usuario usuario) throws RuntimeException {
		dao.remove(usuario);
	}

	public void atualizar(Usuario usuario) throws RuntimeException {
		dao.update(usuario);
	}

	public List<Usuario> pesquisar(Usuario usuario) throws RuntimeException {		
		return dao.find(usuario);
	}

	public Usuario consultarPorExemplo(Usuario usuario) throws RuntimeException {	
		return dao.findByExemplo(usuario);
	}
	
	public List<Usuario> listarTodos() throws RuntimeException {		
		return dao.findAll(Usuario.class);
	}

}
